<?php
/**
 * Created by PhpStorm.
 * User: YSF
 * Date: 2017\10\17 0017
 * Time: 9:08
 */

namespace app\admin\controller;

use app\common\model\Parts as PartsModel;


/**
 * Class Partsinfo
 * @package app\admin\controller
 *      配件分类控制器
 */
class Partsinfo extends Base
{
    // 声明一个属性用来装模型
    protected $partsInfoModel;
    public function __construct()
    {
        // 实例化配件分类模型
        $this->partsInfoModel = new \app\common\model\PartsInfo();
        parent::__construct();
    }

    /**
     * @return mixed|\think\response\Json
     *     渲染配件分类列表页
     */
    public function index()
    {
        // 接收当前页码数
        $nowPage = input('get.page') ? input('get.page') : 1;
        // 每页显示条数
        $limits = config('pagesize');
        // 获取所有配件分类数据
        $data = $this->partsInfoModel->getAll($nowPage,$limits);

        // 获取总的条数
        $count = $this->partsInfoModel->getCount();
        // 计算总的页码数
        $allPage = intval(ceil($count / $limits));
        // 实例化配件表模型
        $m_part = new PartsModel();
        $tlist=$m_part->getAllType();

        // 模板赋值
        $this->assign('nowPage',$nowPage);    // 当前页码数
        $this->assign('allPage',$allPage);    // 总的页码数
        $this->assign('count',$count);        // 总的条数
        $this->assign('data',$data);          // 数据
        $this->assign('tlist',$tlist);

        if (input('get.page')) {
            return json($data);
        }
        // 调用视图
        return $this->fetch('index');

    }

    /**
     * @return \think\response\Json
     *     根据条件删除数据
     */
    public function remove()
    {
        // 接收要删除的分类数据ID
        $id = input('get.id');
        // 要查询的表名
        $dbName = 'parts';
        $where['type_id'] = $id;
        $data = $this->partsInfoModel->getOne($dbName,$where);
        // 判断分类下面是否有数据
        if (!empty($data)) {
            return json(['status' => 0,'message' => '分类下面有配件 不能直接删除']);
        }
        // 调用remove方法删除配件分类
        $map['id'] = $id;
        $result = $this->partsInfoModel->remove($map);
        if ($result == false) {
            return json(['status' => 0,'message' => '删除失败']);
        }
        return json(['status' => 1,'message' => '删除成功']);


    }

    /**
     * @return mixed
     *     渲染修改数据页面
     */
    public function update()
    {
        // 接收修改数据ID
        $id = input('get.id');
        // 表名
        $dbName = 'parts_info';
        $where['id'] = $id;
        // 查询当前ID信息
        $data = $this->partsInfoModel->getOne($dbName,$where);
        // 模板赋值
        $this->assign('data',$data);
        // 调用视图
        return $this->fetch();

    }

    /**
     * @return \think\response\Json
     *     处理修改数据
     */
    public function doupdate()
    {
        // 接收参数
        $data = request()->get();
        // 修改
        $result = $this->partsInfoModel->edit($data);
        if($result == false){
            return $this->error('修改失败','Partsinfo/index');
        }
        return $this->success('修改成功','Partsinfo/index');

    }

}